package com.itany.shop.util;

import com.itany.shop.exception.MD5ErrorException;
import sun.misc.BASE64Encoder;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年12月20日 11:31
 */
public class MD5Util {
    public static void main(String[] args) {
        String str=md5("123");
        System.out.println(str);
    }

    public static String md5(String password){
        try {

            // 加密后的数据是二进制数据，如果直接将这些数据在网络中传输，传输过程中需要查看或者调试这些数据的时候，不方便
            // BASE64编码将二进制数据转换为可读的字符

            MessageDigest md=MessageDigest.getInstance("MD5");
            byte[] b=md.digest(password.getBytes());
            BASE64Encoder encoder=new BASE64Encoder();
            return encoder.encode(b);
        } catch (NoSuchAlgorithmException e) {
            throw new MD5ErrorException("密码加密出现问题了");
        }

    }
}
